LinuxKit+Moby初体验
官网:https://github.com/linuxkit/linuxkit
在Ubuntu 16.04进行测试。
什么是LinuxKit
LinuxKit是用于构建最小化定制的,不可改变的linux分发的工具集。
安装基础依赖
如果已安装请跳过。
sudo apt-get install -yqq docker.io golang git
安装moby
mkdir ~/gopath
export GOPATH=~/gopath
export PATH=${PATH}:${GOPATH}/bin
go get -u github.com/linuxkit/linuxkit/src/cmd/moby
构建iso镜像
git clone https://github.com/linuxkit/linuxkit.git
mkdir ~/linuxkitiso/
cp linuxkit/linuxkit.yml ~/linuxkitiso
cd ~/linuxkitiso
sudo moby build linuxkit.yml
根据网络情况等待,提示输出了iso文件没有报错就可以了。
启动linuxkit前的准备
运行linuxkit依赖qemu-system,如果没有需要安装一下。
sudo apt-get install qemu-system
启动linuxkit镜像
这是一个默认的nginx镜像。
sudo moby run linuxkit
目前有些平台还不支持moby run,那么你也可以如下启动:
sudo ./scripts/qemu.sh linuxkit-initrd.img linuxkit-bzImage linuxkit-cmdline
或者:
./scripts/qemu.sh linuxkit.iso
查看一下操作系统类型
/ # cat /etc/*release
3.5.2
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.5.2
PRETTY_NAME="Alpine Linux v3.5"
HOME_URL=""
BUG_REPORT_URL=""
查看进程树
查看启动的容器
测试linuxkit
linuxkit是只读的,所以没办法安装curl,用wget测试。
/ # wget -qO- 127.0.0.1
linuxkit docker镜像
源码中在examples目录中提供了几个模板,其中docker.yml可以在系统中启动docker,可以一定程度上解决前面linuxkit只读的问题,自行尝试。
mkdir ~/dockeriso/
cp docker.yml ~/dockeriso/
cd ~/dockeriso
moby build docker.yml
moby run docker
注意一点,启动docker系统后,没有doker命令,为毛?因为docker本身就是容器,所以要进入容器才可以使用。
/ # runc exec -t docker sh
/ # docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
槽点:linuxkit和内部容器的prompt行居然一样,啥玩?
退出linuxkit
exit
logout
quit
不行,不知道怎么退出,官方文档没找到。暴力拆卸:
pkill -9 -f qemu-system-x86_64
定制linuxkit镜像
复制 linuxkit.yml 改名为mylinuxkit.yml,编辑后像前面一样执行构建和启动。
moby build mylinuxkit
moby run mylinuxkit
配置项
linuxkit实例中的几个主要配置项如下:
kernel
指定docker镜像的内核,它包含一个内核和一个文件系统的tar包。示例的内核构建在`/kernel`目录中。
init
是一个docker容器的init进程的基础。它将在容器中解压,包含"init"、"containerd"、"runc"及其他几个工具。示例中构建在`pkg/init/`目录中。
onboot
是系统级的容器,按照配置顺序依次运行,执行完后立即结束。如:ntpd,dhcpd
services
是系统级的服务,他们通常在系统启动后适中运行。如:nginx
files
附加到系统中的文件集合。
outputs
输出的镜像文件。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/guanli/11357.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
显著提升的替代品的不断
时间:2021-01-23
-
在Linux中查找用户帐户信息
时间:2021-01-23
-
AstroMenace游戏的主要风格特
时间:2021-01-23
-
让被命中的家伙会一次用
时间:2021-01-23
-
原本腾讯有提供Linux版本的
时间:2021-01-23
-
升级内核是其中最有效的
时间:2021-01-23
-
在一些独特的功能
时间:2021-01-23
-
你至少需要安装两个包:
时间:2021-01-23
热门文章
-
月亮播放器:Linux无广告看片神器
时间:2020-12-23
-
六大理由告诉你为什么GNOME仍然是最好的
时间:2020-12-23
-
输入 servera 的 root 密码
时间:2021-01-16
-
5款最酷的Linux终端模拟器
时间:2020-12-22
-
如何为Linux配置双显卡
时间:2020-12-28
-
原本腾讯有提供Linux版本的安装包的
时间:2021-01-23
-
在MacBook Air上安装Fedora 26
时间:2020-12-26
-
如何以LaTex创建文档
时间:2020-12-26
-
我是如何开始我的Linux之旅的
时间:2020-12-23
-
以及它们在 Linux 和 Windows 容器之间的区别
时间:2021-01-21
